import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import './plugins/element.js'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import settings from './assets/js/settings'
import './util/http'
import axios from 'axios'
import * as echarts from 'echarts'
import moment from 'moment'; //导入模块
moment.locale('zh-cn'); //设置语言 或 moment.lang('zh-cn');
Vue.prototype.$moment = moment;//赋值使用
Vue.prototype.$echarts = echarts
Vue.use(ElementUI)
// 配置后端地址
Vue.prototype.$settings = settings
// 配置axios

// 配置cookies
Vue.config.productionTip = false

Vue.prototype.CuerrentUser = function () {
    return new Promise((resolve, reject) => {
         axios({
            url: this.$settings.base_url + '/user/currentuser/',
            method: 'get',
            headers: {
                // 'AUTHORIZATION': window.$cookies.get('oatoken')
                 'AUTHORIZATION':sessionStorage.getItem('oatoken')
            }
        }).then( res=> {
            resolve(res);
        }).catch(error=>{ reject(error);})
    })
}

Vue.directive('permission', {
  inserted:function (el, binding) {
    //拿到el-button这个按钮标签
    //拿到v-permission自定义指令中{action:'add'}
    const action = binding.value.action		//action就拿到v-permission中的action对应的值.
    //判断,当前的路由所对应的组件中,如何判断用户是否具备action的权限,currentRoute拿到当前组件的路由规则
    const currentRight = router.currentRoute.meta
    let cur_list = [currentRight]
    if (cur_list.indexOf(action) === -1) {
      //删除el元素
      el.parentNode.removeChild(el)
      //禁用元素
      // el.disabled = true
      // el.classList.add('is-disabled')
    }
  }
})

Vue.filter('dataFMT', (input, formatString = "YYYY-MM-DD") => {
    //es5函数参数设置默认值
    //const lastFormatString = formatString ||
     // moment(input) 把时间字符串转成时间对象
     // format(formatString) 把时间对象，按照指定格式，格式化成符合条件的字符串
    return moment(input).format(formatString)
})


Vue.filter('dateHMS',(input, formatString = "HH:mm:ss") => {
    //es5函数参数设置默认值
    //const lastFormatString = formatString ||
     // moment(input) 把时间字符串转成时间对象
     // format(formatString) 把时间对象，按照指定格式，格式化成符合条件的字符串
    return moment(input).format(formatString)
})

Vue.filter('dateAllTime',(input, formatString = "YYYY-MM-DD HH:mm:ss") => {
    //es5函数参数设置默认值
    //const lastFormatString = formatString ||
     // moment(input) 把时间字符串转成时间对象
     // format(formatString) 把时间对象，按照指定格式，格式化成符合条件的字符串
    return moment(input).format(formatString)
})

// originVal 后台返回的毫秒
Vue.filter('dataFormat', originVal => {
  const dt = new Date(originVal)
  const y = dt.getFullYear()
  const m = (dt.getMonth() + 1 + '').padStart(2, '0')
  const d = (dt.getDate() + '').padStart(2, '0')
  const hh = (dt.getHours() + '').padStart(2, '0')
  const mm = (dt.getMinutes() + '').padStart(2, '0')
  const ss = (dt.getSeconds() + '').padStart(2, '0')
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})


new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
